package com.ushine.web.component.design.strategy.strategy;

import com.ushine.web.component.design.chain.salary.model.SalaryCalculateBO;

import java.math.BigDecimal;

/**
 * @Author: yls
 * @Date: 2022/03/04 14:26
 * @Description: 薪资抽象策略类
 * @Version 1.0
 */
public interface AbstractSalaryStrategy {
    /**
     * 功能描述:
     * 〈 获取基本薪资 〉
     *
     * @param salaryCalculate 薪资计算实体类
     * @return : java.math.BigDecimal
     * @author : yls
     * @date : 2022/03/04 14:32
     */
    BigDecimal getBaseSalary(SalaryCalculateBO salaryCalculate);

    /**
     * 功能描述:
     * 〈 获取增值税 〉
     *
     * @param salaryCalculate 薪资计算实体类
     * @return : java.math.BigDecimal
     * @author : yls
     * @date : 2022/03/04 14:34
     */
    BigDecimal getValueAddedTax(SalaryCalculateBO salaryCalculate);

    /**
     * 功能描述:
     * 〈获取绩效〉
     *
     * @param salaryCalculate 薪资计算实体类
     * @return : java.math.BigDecimal
     * @author : yls
     * @date : 2022/03/04 14:35
     */
    BigDecimal getAchievement(SalaryCalculateBO salaryCalculate);
}
